Databases storing millions of data entries are commonplace. To improve database performance, database archiving techniques are used to reduce the size of an active database, also referred to herein as a production database. Unlike a backup procedure that copies the entire contents of a database to another storage location, database archiving involves moving one or more portions (e.g., such as less-used portions) of the database to an archive, also referred to herein as an archive database. Furthermore, in many database applications, an archived portion of the database needs to be complete such that the archived portion is not functionally dependent on data remaining in the active database, and vice versa. For example, when the archived portion of the database corresponds to a business transaction, the archived portion should include all functionally interdependent entries making up the archived business transaction to enable the archived business transaction to be recovered later from the archive. If the archived business transaction remains functionally dependent on data remaining in the active database, that remaining data may later be deleted or lost, making the archived business transaction unrecoverable. Conversely, if the active database remains functionally dependent on data in the data archive, the active database may become corrupted or otherwise function improperly when the archived portion is removed from the active database, which can be manifested in the form of “data not found” or similar errors. Accordingly, many database archiving techniques employ data modeling to model the functional dependencies in a database.